QT QPlainTextEdit复制粘贴功能的实现

您所在的位置:网站首页 qt 剪贴板 QT QPlainTextEdit复制粘贴功能的实现

QT QPlainTextEdit复制粘贴功能的实现

2024-06-06 16:14| 来源: 网络整理| 查看: 265

我最近做了一个QT mindmap的项目,用了一下QPlainTextEdit,但是出现了不能复制的情况。实际上只需要舰艇Ctrl+c和Ctrl+x按键事件就行了。我的核心代码函数为:

void keyPressEvent(QKeyEvent* ev) Q_DECL_OVERRIDE { update(); if (isReadOnly() && ev->key() == Qt::Key_Space) { //禁止按空格键后编辑功能 setReadOnly(true); } else if (!isReadOnly() && ev->key() == Qt::Key_Escape) { setReadOnly(true); } else if (!isReadOnly() && ev->key() == Qt::Key_Tab) { setReadOnly(true); m_parent->keyPressEvent(ev); } else if (!isReadOnly() && ev->key() == Qt::Key_Return && (ev->modifiers() & Qt::ShiftModifier) == 0) { setReadOnly(true); m_parent->keyPressEvent(ev); }else if((ev->key() == Qt::Key_C || ev->key() == Qt::Key_X) && ev->modifiers() == Qt::ControlModifier){ //复制粘贴 copy(); } else if (!isReadOnly()) { QPlainTextEdit::keyPressEvent(ev); } else { m_parent->keyPressEvent(ev); } }

核心代码为:

else if((ev->key() == Qt::Key_C || ev->key() == Qt::Key_X) && ev->modifiers() == Qt::ControlModifier){ copy(); }

然后再复制QPlainTextEdit上的内容就能复制成功了。

参考文献

[1].qtQPlainTextEdit复制内容粘贴到excel中的问题. http://blog.sina.com.cn/s/blog_6b2dd2620102yvyp.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3